import './assets/main.css'  // 保留 CSS 引入（样式重要，需保留）

import { createApp } from 'vue'
import App from './App.vue'
// 统一路由路径（根据实际文件位置调整，若路由文件在 src/router/index.js 则用 ./router）
import router from './router'  // 若实际路径是 ./router/router，则改为 ./router/router
import { createPinia } from 'pinia'  // 保留 Pinia
import ElementPlus from 'element-plus'  // 引入 Element Plus
import 'element-plus/dist/index.css'  // Element Plus 样式
import * as ElementPlusIconsVue from '@element-plus/icons-vue'  // Element Plus 图标
// 统一 axios 实例（根据实际文件选择，若用 request 则保留原路径，若用 http 则替换）
import http from './utils/http'  // 若实际是 ./utils/request，则改为 import axios from './utils/request'
import dayjs from 'dayjs'  // 日期工具
import axios from 'axios';

// 创建 Pinia 实例
const pinia = createPinia()
const app = createApp(App)

// axios未定义的元凶
app.config.globalProperties.$axios = axios;


// 全局注册 Element Plus 图标
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
    app.component(key, component)
}

// 全局日期格式化方法（保留实用工具）
app.config.globalProperties.$formatDate = (date) => {
    if (!date) return '无日期'
    return dayjs(date).isValid()
        ? dayjs(date).format('YYYY-MM-DD HH:mm')
        : '无效日期'
}

// 全局挂载 axios 实例（统一命名，避免混淆，建议用 $http 或 $axios 保持一致）
app.config.globalProperties.$http = http  // 若用 request 则改为 $axios = axios

// 全局错误处理（保留错误监控）
app.config.errorHandler = (err, vm, info) => {
    console.error('[Global Error]', err, info)
    // 可补充 Element Plus 的消息提示：ElMessage.error('发生错误：' + err.message)
}

// 启用插件（顺序不影响核心功能，建议按逻辑排序）
app.use(pinia)  // 状态管理
app.use(ElementPlus)  // UI 组件库
app.use(router)  // 路由

// 挂载应用
app.mount('#app')

// 开发环境调试配置（保留方便调试）
if (import.meta.env.MODE === 'development') {
    window.__APP__ = app  // 控制台可通过 window.__APP__ 访问应用实例
}